home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 95 / Amiga News 95.iso / dpat / dpat84 / errormsg / examples / muiapp.s < prev    next >
Text File  |  1994-09-07  |  7KB  |  266 lines

  1.     opt    ALINK
  2.  
  3.     XREF    _DoMethod
  4.  
  5. MR    EQUR    a4
  6. TRUE    EQU    1
  7.  
  8.     include    exec/execbase.i
  9.     include    libraries/mui.i
  10.     include    libraries/mui_lib.i
  11.     include    libraries/errormsg.i
  12.     include    libraries/errormsg_lib.i
  13.  
  14. Start    move.l    4.w,a6
  15.     move.l    ThisTask(a6),a4
  16.     tst.l    pr_CLI(a4)
  17.     bne.s    .FromCLI
  18.     lea    pr_MsgPort(a4),a0
  19.     jsr    _LVOWaitPort(a6)
  20.     lea    pr_MsgPort(a4),a0
  21.     jsr    _LVOGetMsg(a6)
  22.     move.l    d0,WB.Startup
  23. .FromCLI
  24.     lea    MUIMasterName(pc),a1
  25.     move.l    #MUIMASTER_VMIN,d0
  26.     jsr    _LVOOpenLibrary(a6)
  27.     move.l    d0,_MUIMasterBase
  28.     beq.s    .exit
  29.     lea    ErrorMsg.Name(pc),a1
  30.     moveq    #3,d0
  31.     jsr    _LVOOpenLibrary(a6)
  32.     move.l    d0,ErrorMsg.Base
  33.     beq.s    .CloseMUI
  34.     bsr    InitGUI
  35.     beq.s    .CloseERM
  36.     bsr.s    ProcessMessages
  37.     bsr.s    FreeGUI
  38. .CloseERM
  39.     move.l    ErrorMsg.Base(pc),a1
  40.     move.l    4.w,a6
  41.     jsr    _LVOCloseLibrary(a6)
  42. .CloseMUI
  43.     move.l    _MUIMasterBase(pc),a1
  44.     move.l    4.w,a6
  45.     jsr    _LVOCloseLibrary(a6)
  46. .exit    move.l    WB.Startup(pc),d0
  47.     beq.s    .ToCLI
  48.     move.l    d0,a1
  49.     move.l    4.w,a6
  50.     jsr    _LVOForbid(a6)
  51.     jsr    _LVOReplyMsg(a6)
  52.     moveq    #0,d0
  53. .ToCLI    rts
  54.  
  55. ProcessMessages
  56. .Loop    DoMethod    App(pc),#MUIM_Application_Input,#MUISignals
  57.     cmp.l    #MUIV_Application_ReturnID_Quit,d0
  58.     beq.s    .Quit
  59.     move.l    MUISignals(pc),d0
  60.     beq.s    .Quit
  61.     move.l    4.w,a6
  62.     jsr    _LVOWait(a6)
  63.     bra.s    .Loop
  64. .Quit    rts
  65.  
  66. FreeGUI
  67.     move.l    App(pc),a0
  68.     move.l    _MUIMasterBase(pc),a6
  69.     jsr    _LVOMUI_DisposeObject(a6)
  70.     rts
  71.  
  72. InitGUI
  73.     bsr    GetTagSpace
  74.     beq    .Ret
  75.  
  76.     ApplicationObject
  77.     MUIT    MUIA_HelpFile,HelpFile.Name
  78.     MUIT    MUIA_HelpNode,Main.Name
  79.     MUIT    MUIA_Application_Author,Author.Name
  80.     MUIT    MUIA_Application_Base,App.Base
  81.     MUIT    MUIA_Application_Copyright,App.Copyright
  82.     MUIT    MUIA_Application_Description,App.Descr
  83.     MUIT    MUIA_Application_Title,App.Title
  84.     MUIT    MUIA_Application_Version,App.Version
  85.     SubWindowi
  86.      WindowObject
  87.      MUIT    MUIA_Window_ID,"MAIN"
  88.      MUIT    MUIA_Window_ScreenTitle,Window.ScrTitle
  89.      MUIT    MUIA_Window_Title,Window.Title
  90.      WindowContentsi
  91.       VGroup
  92.        Childi HGroup
  93.         GroupFrameT    HKGr.Title
  94.         Childi    VGroup
  95.          MUIT    MUIA_Weight,300
  96.          Childi    ListviewObject
  97.           MUIT    MUIA_Listview_List
  98.           ListObject
  99.            InputListFrame
  100.           Endi
  101.          Endi
  102.          Childi    VGroup
  103.           MUIT    MUIA_Group_Columns,2
  104.           Childi    Label2,Nom.Name
  105.           Childi    StringObject
  106.            StringFrame
  107.           Endi
  108.           is    Nom.String
  109.           Childi    Label2,Touche.Name
  110.           Childi    StringObject
  111.            StringFrame
  112.           Endi
  113.           is    Touche.String
  114.           Childi    Label2,Commande.Name
  115.           Childi    StringObject
  116.            StringFrame
  117.           Endi
  118.           is    Commande.String
  119.          Endi
  120.         Endi
  121.         Childi    VGroup
  122.          MUIT    MUIA_Group_SameSize,TRUE
  123.          Childi    SimpleButton,Premier.Name
  124.          Childi    SimpleButton,Haut.Name
  125.          Childi    SimpleButton,Bas.Name
  126.          Childi    SimpleButton,Dernier.Name
  127.          Childi    SimpleButton,Trier.Name
  128.          Childi    SimpleButton,Creer.Name
  129.          Childi    SimpleButton,Copier.Name
  130.          Childi    SimpleButton,Effacer.Name
  131.         Endi
  132.        Endi
  133.        Childi    HGroup
  134.         GroupFrame
  135.         MUIT    MUIA_Group_SameSize,TRUE
  136.         Childi    SimpleButton,Sauver.Name
  137.         Childi    SimpleButton,Utiliser.Name
  138.         Childi    SimpleButton,Tester.Name
  139.         Childi    SimpleButton,Aide.Name
  140.         Childi    SimpleButton,Annuler.Name
  141.        Endi
  142.       Endi
  143.      Endi
  144.      is    MainWin
  145.     Endi
  146.     is    App
  147.     beq    .Fail
  148.     DoMethod    App(pc),#MUIM_Application_Load,#MUIV_Application_Load_ENV
  149.     DoMethod    MainWin(pc),#MUIM_Notify,#MUIA_Window_CloseRequest,#TRUE,App(pc),#2,#MUIM_Application_ReturnID,#MUIV_Application_ReturnID_Quit
  150.     DoMethod    MainWin(pc),#MUIM_Set,#MUIA_Window_Open,#TRUE
  151.  
  152. ; notification
  153.     DoMethod    Nom.String(pc),#MUIM_Notify,#MUIA_String_Acknowledge,#MUIV_EveryTime,Nom.String(pc),#4,#MUIM_CallHook,#String.Hook,#Nom.Name,#MUIV_TriggerValue
  154.     DoMethod    Touche.String(pc),#MUIM_Notify,#MUIA_String_Acknowledge,#MUIV_EveryTime,Touche.String(pc),#4,#MUIM_CallHook,#String.Hook,#Touche.Name,#MUIV_TriggerValue
  155.     DoMethod    Commande.String(pc),#MUIM_Notify,#MUIA_String_Acknowledge,#MUIV_EveryTime,Commande.String(pc),#4,#MUIM_CallHook,#String.Hook,#Commande.Name,#MUIV_TriggerValue
  156.  
  157.     bsr.s    FreeTagSpace
  158.     moveq    #-1,d0
  159. .Ret    rts
  160. .Fail    bsr.s    FreeTagSpace
  161.     moveq    #0,d0
  162.     rts
  163.  
  164.  
  165. GetTagSpace
  166.     move.l    #TAG_SPACE,d0
  167.     move.l    #MEMF_PUBLIC,d1
  168.     move.l    4.w,a6
  169.     jsr    _LVOAllocMem(a6)
  170.     move.l    d0,MR
  171.     move.l    d0,TagSpace
  172.     rts
  173.  
  174. FreeTagSpace
  175.     move.l    TagSpace(pc),a1
  176.     move.l    #TAG_SPACE,d0
  177.     move.l    4.w,a6
  178.     jsr    _LVOFreeMem(a6)
  179.     rts
  180.  
  181. String.HookFunc
  182.     movem.l    d0-d1/a0-a3/a6,-(sp)
  183.     lea    String.Message(pc),a0
  184.     move.l    sp,a3
  185.     clr.l    -(sp)
  186.     pea    StringMessage.Gad
  187.     pea    EMT_GadFmt
  188.     pea    StringMessage.Title
  189.     pea    EMT_Title
  190.     move.l    MainWin(pc),-(sp)
  191.     pea    EMT_MUIWinObject
  192.     move.l    App(pc),-(sp)
  193.     pea    EMT_MUIAppObject
  194.     move.l    _MUIMasterBase(pc),-(sp)
  195.     pea    EMT_MUIBase
  196.  
  197.     move.l    sp,a2
  198.     move.l    ErrorMsg.Base(pc),a6
  199.     jsr    _LVODisplayMessageA(a6)
  200.     move.l    a3,sp
  201.     movem.l    (sp)+,d0-d1/a0-a3/a6
  202.     rts
  203.  
  204. String.Hook    dc.l    0,0,String.HookFunc,0,0
  205.  
  206. _MUIMasterBase    dc.l    0
  207. ErrorMsg.Base    dc.l    0
  208. WB.Startup    dc.l    0
  209. TagSpace    dc.l    0
  210.  
  211. Nom.String    dc.l    0
  212. Touche.String    dc.l    0
  213. Commande.String    dc.l    0
  214. MainWin    dc.l    0
  215. App    dc.l    0
  216.  
  217. MUISignals    dc.l    0
  218.  
  219. MUIMasterName    dc.b    'muimaster.library',0
  220. ErrorMsg.Name    dc.b    'errormsg.library',0
  221. HelpFile.Name    dc.b    'Injector.Guide',0
  222. Main.Name    dc.b    'Main',0
  223. Author.Name    dc.b    'Frédéric Delacroix',0
  224. App.Base    dc.b    'InjectorPrefs',0
  225. App.Copyright    dc.b    'Copyright ©1993-94 F.Delacroix',0
  226. App.Descr    dc.b    'Injector Preferences',0
  227. App.Title    dc.b    'InjectorPrefs',0
  228. App.Version    dc.b    '$VER: InjectorPrefs_MUI 2.05 (12.08.94)',0
  229. Window.Title
  230. Window.ScrTitle    dc.b    'Injector 2.05 Copyright ©1993-94 F.Delacroix',0
  231. HKGr.Title    dc.b    'Defined hotkeys',0
  232.  
  233. Premier.Name    dc.b    'Premier',0
  234. Haut.Name    dc.b    'Haut',0
  235. Bas.Name    dc.b    'Bas',0
  236. Dernier.Name    dc.b    'Dernier',0
  237. Trier.Name    dc.b    'Trier',0
  238.  
  239. Nom.Name    dc.b    'Nom:',0
  240. Creer.Name    dc.b    'Créer',0
  241. Touche.Name    dc.b    'Touche:',0
  242. Copier.Name    dc.b    'Copier',0
  243. Commande.Name    dc.b    'Commande:',0
  244. Effacer.Name    dc.b    'Effacer',0
  245.  
  246. Sauver.Name    dc.b    'Sauver',0
  247. Utiliser.Name    dc.b    'Utiliser',0
  248. Tester.Name    dc.b    'Tester',0
  249. Aide.Name    dc.b    'Aide',0
  250. Annuler.Name    dc.b    'Annuler',0
  251.  
  252. String.Message
  253.     dc.b    27,'cThis is little demo shows how to use MUI from errormsg.library',10
  254.     dc.b    'This interface is in no way functionnal, it is an old preview for',10
  255.     dc.b    'The MUI version of the preferences program for ',27,'uInjector',27,'n.'
  256.     dc.b    10,'(The interface has even changed a bit since)',10
  257.     dc.b    10,'You clicked on the gadget labelled: ',27,'i%s',27,'n',10
  258.     dc.b    'It now contains: %s',10
  259.     dc.b    10,'MUI users... don''t forget to register !',0
  260.  
  261. StringMessage.Gad    dc.b    '_Great!|',27,'c_Multiple',10,'Lines!|*Images:',27,'I[6:23](HardDisk)',0
  262.  
  263. StringMessage.Title    dc.b    'Title of the nice MUI requester',0
  264.  
  265.     include    libraries/mui_asm.i
  266.